library(tidyverse)Ejercicio: satisfacción de los pacientes
Práctica guiada (clase 4)
Práctica 1
Para este ejercicio usaremos la tabla de datos de satisfacción de pacientes en un hospital guardada en el archivo .csv llamada SatisfaccionPacientes.csv
Cargamos las librerías necesarias
Lectura de ficheros y normalización de nombres
datos <-
read_csv("./datos/SatisfaccionPacientes.csv") |>
janitor::clean_names()Pregunta 1
Aplica el código que sea necesario para determinar el tamaño muestral, el número de variables y el tipo de estas.
Code
# Tamaño muestral/ número de observaciones
n <- ...
# Número de variables
p <- ...
# Tipo de variables
datosPregunta 2
Obtén la tabla de frecuencias de las variables cualitativas (lo que puedas) y luego contesta a las siguientes preguntas:
¿Cuántas mujeres hay?
¿Cuántos individuos están casados?
¿Qué porcentaje de individuos tienen un estado de salud Regular o Malo?
¿Harías alguna cosa con la tabla de frecuencia de estado de salud?
Code
# no podemos calcular acumulados ya que son genero es nominal
datos |>
...(genero) |>
rename(frecuencia_abs = ...) |>
mutate(frecuencia_rel = ...)
# Hay 53 mujeres
datos |>
...(estado_civil) |>
rename(frecuencia_abs = ...) |>
mutate(frecuencia_rel = ...)
# Hay 26 personas casadas
datos <-
datos |>
mutate(estado_salud =
factor(estado_salud, ..., ...))
datos |>
...(estado_salud) |>
rename(frecuencia_abs = ...) |>
mutate(frecuencia_rel = ...,
frecuencia_acum_abs = ...,
frecuencia_acum_rel = ...)
# Hay 44+15 = 59 personas con un estado de salud malo o regular.
# ¿Sería conveniente hacer algo con las categorías? Pregunta 3
Calcula la media, mediana, cuartiles y desviación típica de las variables cuantitativas (veremos una forma más eficiente de hacerlo pero de momento, una a una). Guarda los resultados en
resumeny expórtalo a unresumen.csv
Code
resumen <-
datos |>
summarise(media_edad = ..., sd_edad = ...,
mediana_edad = ...,
Q1_edad = ...,
Q3_edad = ...,
# tiempo espera
...,
# grado satisfaccion
... ,
# número visitas
...)
write_csv(resumen, file = "./datos/resumen.csv")Pregunta 4
Crear un diagrama de barras para la variable género
Code
# Género
ggplot(...) +
geom_bar(aes(x = ..., fill = ...), alpha = 0.75) +
labs(title = "Diagrama de barras de la variable género",
x = "Categoría", y = "Frecuencia absoluta",
fill = "Categoría") +
theme_minimal() Crear un diagrama de barras para la variable género
Code
# Género
ggplot(datos) +
geom_bar(aes(x = genero, fill = genero), alpha = 0.75) +
labs(title = "Diagrama de barras de la variable género",
x = "Categoría", y = "Frecuencia absoluta",
fill = "Categoría") +
theme_minimal() Personaliza los colores con alguna paleta
Code
# Género
ggplot(...) +
geom_bar(...) +
scale_... +
labs(...) +
theme_minimal() Pregunta 5
Crear un diagrama de barras para la variable estado de salud
Code
# Estado de salud (el orden importa)
ggplot(...) +
geom_bar(aes(...)) +
scale_... +
labs(...) +
theme_minimal() Pregunta 6
Crear un histograma y un gráfico de densidad para las variable edad, tiempo de espera y grado de satisfacción. ¿Crees que todas deberían representarse mediante este tipo de gráficos? ¿Qué propondrías?
Code
ggplot(...) +
# Define el ancho de las barras y colores
geom_histogram(..., bins = 30, fill = "darkorange", alpha = 0.75) +
labs(title = "Histograma de edad",
subtitle = "Bins = 30",
x = "Valores", y = "Frecuencia absoluta") +
theme_minimal()
ggplot(...) +
geom_density(...) +
labs(title = "Gráfico de densidad de edad",
x = "Valores", y = ...) +
theme_minimal()
ggplot(...) +
# Define el ancho de las barras y colores
geom_histogram(...) +
labs(...) +
theme_minimal()
ggplot(...) +
geom_density(...) +
labs(...) +
theme_minimal()
# Representación regular, no aporta ni resume
ggplot(...) +
# Define el ancho de las barras y colores
geom_histogram(...) +
labs(...) +
theme_minimal()
# Las variables discretas se pueden representar con una diagrama de barras
ggplot(...) +
geom_bar(...) +
labs(...) +
scale_x_... +
theme_minimal()Pregunta 7
Realiza un boxplot para edad y un boxplot para numero de visitas por género y contesta a las siguientes preguntas:
¿La variable edad tiene outliers? ¿Qué edad tienen esos pacientes?
¿Quién ha esperado más los hombres o las mujeres?
Code
# Crear un boxplot de la variable Edad
ggplot(...) +
geom_boxplot(..., fill = "lightblue", alpha = 0.75) +
labs(title = "Boxplot de edad",
y = "Edad") +
theme_minimal()
# Crear un boxplot de numero de visitas por Género
ggplot(...) +
geom_boxplot(...) +
labs(...) +
theme_minimal()